JAVACHECK: A Domain Specific Language for the Static Analysis of Java Code
نویسندگان
چکیده
The increasing complexity of software systems has raised the need for code analysis tools to assess its quality. However, these tools offer predefined metrics or evaluation criteria, which are frequently hard to extend or modify. For this purpose, we have developed JAVACHECK, a DomainSpecific Language targeted to define expected properties of Java code bases. JAVACHECK can be used in a variety of scenarios related to quality assurance: to define expected code styles (e.g., naming conventions), specify programming conventions (e.g., private attributes), detect code smells possibly indicating errors (e.g., equals method with no hashCode), and detect patterns (e.g., uses of Singleton) or requirements demanded in a project (e.g., a class with name synonym to “Professor”).
منابع مشابه
Software Evolution to Domain-Specific Languages
Domain-specific languages (DSLs) can improve software maintainability due to less verbose syntax, avoidance of boilerplate code, more accurate static analysis, and domain-specific tool support. However, most existing applications cannot capitalise on these benefits because they were not designed to use DSLs, and rewriting large existing applications from scratch is infeasible. We propose a proc...
متن کاملStatic Source Code Analysis using OCL
The majority of artifacts created during software development are representations of programs in textual syntax. Although graphical descriptions are becoming more widespread, source code is still indispensable. To obtain programs that behave correctly and adhere to given coding conventions, source code must be analyzed — preferably using automated tools. Building source code analyzers has a lon...
متن کاملCase Study: Implementing a Java JIT Compiler in Haskell
We present a JVM prototype implemented in the purely-functional language Haskell. It exploits several features of the language, such as strong static typing to implement an intermediate representation, and abstraction mechanism to express machine code generation in the manner of a domain specific language. The compiler consists of (i) a pass to transform Java bytecode to a register-based interm...
متن کاملDeepDSL: A Compilation-based Domain-Specific Language for Deep Learning
In recent years, Deep Learning (DL) has found great success in domains such as multimedia understanding. However, the complex nature of multimedia data makes it difficult to develop DL-based software. The state-of-the-art tools, such as Caffe, TensorFlow, Torch7, and CNTK, while are successful in their applicable domains, are programming libraries with fixed user interface, internal representat...
متن کاملFrameworks and Static-Semantic Analysis
A domain may be represented either by a Domain Specific Language (DSL) or by a framework. While programs made in a DSL may be subject to static-semantic analysis and thereby ensured to be in accordance with the constraints of the domain, programs made on the basis of a corresponding framework cannot be analyzed with the same simplicity. Constraints of a domain are identified during domain analy...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2017